package org.sql.commands.mysql.filter;

// *************************************************************************/
// Charada Soft
// Area de Desarrollo de Sistemas de Información
// *************************************************************************/
// Proyecto : java connector sql 
// Archivo : Like.java
// Descripcion : Clase Like
// *************************************************************************/
// Version : 2.10.4
// Fecha de Creación: 01 de Julio de 2014
// Author : Daniel Andres Castillo Pedroza
// *************************************************************************/

import org.sql.commands.Filter;

public class Like implements Filter {

    // Atributos de la clase Like
    
    private String columna;
    private String connector;

    // Metodos de la clase Like
    
    /**
     * Este método nos permite establecer la columna del Filtro Like.
     *
     * @param columna Columna del Filtro
     */
    public void setColumna(String columna) {
        this.columna = columna;
    }

    /**
     * Este método nos permite establecer el conector de la Condición.
     *
     * @param connector Conector de la Condición
     */
    public void setConnector(String connector) {
        this.connector = connector;
    }

    // Metodos estáticos de la clase Like
    
    /**
     * Este método nos permite crear un Filtro Like para un Comando.
     *
     * @param column Columna del Comando
     * @return Retorna el filtro en un objeto <code>Like</code>.
     */
    public static Like creatorFilter(String column) {
        Like like = new Like();
        like.setColumna(column);

        return like; // Retornando Objeto LIKE
    }

    /**
     * Este método nos permite crear un Filtro Like para un Comando.
     *
     * @param column Columna del Comando
     * @param connector Conector del Filtro
     * @return Retorna el filtro en un objeto <code>Like</code>.
     */
    public static Like creatorFilter(String column, String connector) {
        Like like = new Like(); // Instanciando objeto
        like.setConnector(connector); like.setColumna(column);

        return like; // Retornando Objeto LIKE
    }

    // Metodos sobreescritos de la clase Like
    
    @Override
    public String getFilter() {
        return "(" + columna + " LIKE ?)";
    }

    @Override
    public String getConnector() {
        return connector;
    }
}